Server duplexing method and duplexed server system

ABSTRACT

A method of duplicating servers and a duplicated server system that make seamless transition of service in case of server failures possible. The duplicated server system comprises first and second servers that are connected to a network and have the same network address, communication means for making high-speed communication between both servers possible, and switchover controller that designates the first server as the primary server put in operation for other computers and the second server as the secondary server in normal condition. When the first server receives a service request addressed to the system, it passes the service request to the application for processing. The first server sends the recovery data output by the application to the second server by means of the communication means. If the processing related to the service request involves an update of the data held on the server system, the second server executes the application using the recovery data sent from the first server to keep the data held on both servers identical. Service requests and the results of the processing are stored in the stacks in both servers in duplicate.

FIELD OF THE INVENTION

The present invention relates to servers, and more particularly to thetechnology for enhancing the reliability of servers by duplicating them.

BACKGROUND

Some of the servers that provide service to a large number of clientsover a network are required to have a particularly high reliability forthe nature of the services. A measure often employed to meet such arequirement is to duplicate the server by using another server (socalled mirror server) which takes over the service task of the server incase of server failure. In such duplicated server systems, the data(herein referred to as application data) used in application processingon the two servers that make up a server system is always kept identicalby connecting the two servers by means of high-speed communicationmeans.

Even in such duplicated server systems, however, if there is a timedifference in making the contents of the application data on bothservers identical, the service being carried out must be started againfrom the beginning when the mirror server (secondary server) takes overthe tasks in case of server failure while the server that normallyprovides service for other computers (referred to as the primary server)is actually performing service.

From this point of view, it is desired that the service being carriedout at the occurrence of server failure is also continued by seamlesstransition such that the occurrence of failure is not perceived by theclient who requested the service.

The object of the present invention is therefore to provide a method ofduplicating servers that makes seamless transition of the service beingcarried out at the occurrence of server failure possible, and duplicatedserver system and database system mirror-backed-up according to themethod.

SUMMARY OF THE INVENTION

In general, in one aspect, the invention relates to a method forduplicating a first and a second server in a system. The method includesstoring an application used for a service task and correspondingapplication data in each of a first and a second storage device,responding to a service request by storing the service request andoutput data as a data log in each of a first and a second stack, formingan address space that is the same in each of a first and a second sharedmemory. The method further includes passing the service request from thefirst server to an application for updating application data receivedover the network after the service request is received. The first serverincludes the first storage device, the first stack, and the first sharedmemory and the second server includes the second storage device, thesecond stack, and the second shared memory, and the first and the secondserver are configured to connect to a network and are assigned the samenetwork address. The application is configured to process the servicerequest and write the application data used during processing to each ofthe first and the second shared memory as recovery data. The applicationis further configured to store the recovery data written to the firstand the second shared memory to the first and the second stack. Thesecond server is configured to is configured to update the applicationdata by executing the application using the recovery data stored in thefirst and the second shared memory, where the application data stored onthe first server is always identical to the application data stored onthe second server.

In general, in one aspect, the invention relates to a method forduplicating a first and a second server in a system. The method includesstoring an application used for a service task and correspondingapplication data in each of a first and a second storage device,responding to a service request by storing the service request andoutput data as a data log in each of a first and a second stack, wherethe service request does not comprise a request to update theapplication data, forming an address space that is the same in each of afirst and a second shared memory, and passing the service request fromthe first server to an application for updating application datareceived over the network after the service request is received. Thefirst server includes the first storage device, the first stack, and thefirst shared memory and the second server includes the second storagedevice, the second stack, and the second shared memory, and the firstand the second server are configured to connect to a network and areassigned the same network address. The application is configured toprocess the service request, to send the output data back to a clientover the network, to write the application data used during processingto each of the first and the second shared memory as recovery data, andstore the recovery data written to the first and the second sharedmemory to the first and the second stack. The second server isconfigured to execute the application using the data log in the firstand the second stacks.

In general, in one aspect, the invention relates to a duplicated systemserver. The duplication system server includes a first server and asecond server. The first server includes a first storage device, a firststack, and a first shared memory. The second server includes a secondstorage device, a second stack, and a second shared memory. The firstand second server being configured to connect to a network and areassigned to the same network address. The first and the second storagedevices are configured to store at least one application used forservice tasks and application data, the first and the second stacks areconfigured to store a service request and configured to store outputdata in a data log in response to the service request, the servicerequest does not comprise a request to update the application data, andthe first and the second shared memories are configured to form the sameaddress space. The duplicated system server further includes aswitchover control configured to switch operation modes of the first andthe second server. When the service request for updating the applicationdata is received over the network, the switchover control switches theoperation mode of the first server to service mode and the operationmode of the second server to standby mode. The first server isconfigured to pass the service request to the application for processingwhen the service request is received. The application being configuredto: process the service request, write application data used duringprocessing to the first and the second shared memories as recovery data,and store the recovery data written to the first and second sharedmemories in each of the first and second stacks. The second server isconfigured to update the application data by executing the applicationusing the recovery data stored in the first and the second sharedmemories. The first and the second servers are configured to storeidentical application data.

In general, in one aspect, the invention relates to a duplicated systemserver. The duplicated system server includes a first server and asecond server. The first server includes a first storage device, a firststack, and a first shared memory and the second server includes a secondstorage device, a second stack, and a second shared memory. The firstand second server are configured to connect to a network and areassigned to the same network address. The first and the second storagedevices are configured to store at least one application used forservice tasks and application data, the first and the second stacks areconfigured to store a service request and configured to store outputdata in a data log in response to the service request, and the first andthe second shared memories are configured to form the same addressspace. The duplicated system server further includes a switchovercontrol configured to switch operation modes of the first and the secondserver. When the service request for updating the application data isreceived over the network, the switchover control switches the operationmode of the first server to service mode and the operation mode of thesecond server to standby mode. The application is configured to: processthe passed service request, send the output data back to a client overthe network, write the output data to the first and the second sharedmemories as recovery data, and store the recovery data written to thefirst and the second shared memories in each of the first and the secondstacks. The second server is configured to execute the application usingthe data log in the first and the second stacks.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram that shows the hardwarearchitecture of the duplicated server system being an embodiment of thepresent invention.

FIG. 2 shows the data configuration in the HD system of FIG. 1.

FIG. 3 illustrates the duplicate operation of the duplicated serversystem being an embodiment of the present invention. (A) shows theoperation in case where processing involves an updating of data, and (B)shows the operation in the case of query-type processing.

FIG. 4 shows the manner in which service requests and the output data ofthe processing in response to the service requests are stored in thestacks 49 of the primary server 10 and the secondary server 20.

DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 1 is a simplified block diagram that shows the hardwarearchitecture of the duplicated server system being an embodiment of thepresent invention. In FIG. 1, the duplicated server system 1 comprisestwo servers 10 and 20 that are connected to a network and havesubstantially the same hardware architecture and a switchover controller30 that controls the switching of the operation mode of the servers 10and 20.

Since the servers 10 and 20 have substantially the same configuration,both servers are hereinafter referred to like “servers 10, 20” and onlyone server is described. The servers 10 and 20 each are computerssuitable for a server. Each of the servers 10 and 20 has a processingcircuit 11, 21 which includes a microprocessor and a memory not shown inthe Figure, NIC (Network Interface Card) 12, 22 serving as the interfaceto the network, shared memory 13, 23 used for communication between theservers 10 and 20, HD (Hard Disk) system 14, 24, and communicationinterface 15, 25 for communication with the switchover controller 30.

The NICs 12 and 24 are assigned the same MAC (Media Access Control)address Amac so that the servers 10 and 20 appear as a single computerto the network. The shared memories 13 and 23 are dual-port RAMs (RandomAccess Memories) for high-speed communication between the servers 10 and20, and have the same addresses assigned to form identical addressspaces (referred to as shared memory spaces) on the individual servers.The shared memories 13 and 23 are configured so that, when one of theservers 10 and 20 writes data to its own shared memory space, the samedata is written to both shared memories 13 and 23 substantially at thesame time.

The HD systems 14 and 24 have the same configuration consisting of atleast one hard disk drive. FIG. 2 shows an example of the contents thatare stored in the HD systems 14 and 24. In each HD system, an OS(Operating System) 41 suitable for a server such as UNIX, application 43used for specific service tasks and data 45, and the software 47 for theserver duplication according to the present invention (referred to asthe server duplication system herein) are stored as shown in FIG. 2. Inaddition, a stack 49 in which every service request to the server system1 and the output data in response to it are stored as data log is alsostored in each HD systems 14, 24 for duplication of the HD systems asdescribed later. The application 43 may be online banking service systemand various data base management systems, for example.

As described above, both servers 10 and 20 have about the sameconfiguration and are designed so as to be able to perform the equalfunctions. The mode of operation of the servers in which they areoperating in service for other computers is referred to as the servicemode, and that in which they are operating but not in service for othercomputers is referred to as the standby mode. The switching between thetwo modes is made by the switchover controller 30. The switchovercontroller 30 is also a PC (personal computer) provided withcommunication interfaces not shown in the figure and specifies theoperation mode of each server by performing bidirectional communicationwith both servers 10 and 20.

Next, the operation of the duplicated server system 1 is described. Whenthe servers 10 and 20 receive a service request from a remote clientover the network, they normally perform the predetermined processing inresponse to the service request unless otherwise operated by the systemadministrator at need. For convenience' sake, let us suppose that theserver 10 operates in the service mode and the server 20 in the standbymode when the whole system 1 is in normal condition. The server 1 istherefore referred to as the primary server and the server 2 as thesecondary server.

When a service request to the duplicated server system 1 (withdestination MAC address Amac) is sent over the network, the NICs 12 and22 detect the service request, and normally the NIC 12 of the primaryserver 10 in the service mode actually receives the service request. Theoperation of the primary server 10 and the secondary server 20 is shownin FIG. 3.

FIG. 3(A) shows the operation when a service request for processing thatupdates the application data is given over the network 100. Whenreceiving such a service request, the server in the service mode(primary server 10, for example) passes the request to the application43 for processing (Step 102). The application 43 then performs theprocessing related to the service request, and outputs various types ofdata used in the processing as recovery data RD1. The recovery data RD1is written to the shared memory 13 in order to pass it to the secondaryserver 20 (Step 104). At this time, the recovery data RD1 is alsowritten to the shared memory 23 of the secondary server 20 (Step 106).The recovery data RD1 written in the shared memory 13 is then stored inthe stack 49 in the HD system 14 (Step 108). Similarly, on the secondaryserver 20, the recovery data RD1 written in the shared memory 23 isstored in the stack 49 in the HD system 24 (Step 110). Further, thesecondary server 20 always executes the application 43 using therecovery data RD1 stored in the stack 49 and thereby updates theapplication data 45 to keep it identical to the application data on theprimary server 10.

FIG. 3(B) shows the operation of the duplicated server system when itreceives a service request for processing that does not involve anupdate of the application data 45 from the network 100. In FIG. 3(B),the service request received is passed to the application 43 (Step 102).The application 43 then performs the processing related to the servicerequest in response and outputs output data OD1. The output data OD1 issent back to the client over the network 100 (Step 202). The output dataOD1 is also written to the shared memories 13 and 23 simultaneously(Step 204 and 206). The data OD1 written in the shared memory 13 andthat in the shared memory 23 are mechanically stored in the stack 49 ofthe HD systems 14 and in the stack 49 of the HD systems 24, respectively(Step 208 and 210). By doing this, the stack 49 of the primary server 10and that of the secondary server 20 always have the same log data storedas shown in FIG. 4. Therefore, by always executing the application 43 onthe secondary server 20 using the log data, the duplication of theapplication data 45 can be achieved.

Back in FIG. 3(B), the secondary server 20 outputs the output data OD1received by means of the shared memory 23 (Step 207). Although theapplication 43 on the secondary server 20 also outputs the output databecause it is executed using the log data in the stack 49, this data isnot used.

In both cases shown in FIGS. 3(A) and 3(B), the switchover controller 30is monitoring the primary server 10 and the secondary server 20 withrespect to the hardware. If a failure occurs on the server in theservice mode (primary server 10 in this example), the switchovercontroller switches the primary server 10 to the standby mode and thesecondary server 20 to the service mode.

Since a seamless duplication of the servers can be realized by thepresent invention as described above, the reliability of the servers canbe enhanced.

Further, although two servers are used in the above embodiment, two ormore servers can also be used as the secondary servers.

Furthermore, the stacks 49 may also be output to the internal memory ofeach server instead of being output to the HD system each and every timefor high-speed processing.

Thus, by the present invention, a method of duplicating servers thatmakes possible seamless transition of the service being carried out atthe occurrence of server failure, and duplicated server system anddatabase system mirror-backed-up according to the method can beprovided.

1. A method for duplicating a first and a second server in a system,comprising: storing an application used for a service task andcorresponding application data in each of a first and a second storagedevice; responding to a service request by storing the service requestand output data as a data log in each of a first and a second stack;forming an address space that is the same in each of a first and asecond shared memory, wherein the first server comprises the firststorage device, the first stack, and the first shared memory, whereinthe second server comprises the second storage device, the second stack,and the second shared memory, and wherein the first and the secondserver are configured to connect to a network and are assigned the samenetwork address; and passing the service request from the first serverto an application for updating application data received over thenetwork after the service request is received, wherein the applicationis configured to process the service request and write the applicationdata used during processing to each of the first and the second sharedmemory as recovery data, wherein the application is configured to storethe recovery data written to the first and the second shared memory tothe first and the second stack, wherein the second server is configuredto update the application data by executing the application using therecovery data stored in the first and the second shared memory, whereinthe application data stored on the first server is always identical tothe application data stored on the second server.
 2. A method forduplicating a first and a second server in a system, comprising: storingan application used for a service task and corresponding applicationdata in each of a first and a second storage device; responding to aservice request by storing the service request and output data as a datalog in each of a first and a second stack, wherein the service requestdoes not comprise a request to update the application data; forming anaddress space that is the same in each of a first and a second sharedmemory, wherein the first server comprises the first storage device, thefirst stack, and the first shared memory, wherein the second servercomprises the second storage device, the second stack, and the secondshared memory, and wherein the first and the second server areconfigured to connect to a network and are assigned the same networkaddress; and passing the service request from the first server to anapplication for updating application data received over the networkafter the service request is received, wherein the application isconfigured to process the service request, to send the output data backto a client over the network, to write the application data used duringprocessing to each of the first and the second shared memory as recoverydata, and store the recovery data written to the first and the secondshared memory to the first and the second stack, wherein the secondserver is configured to execute the application using the data log inthe first and the second stacks.
 3. A duplicated system servercomprising: a first server comprising a first storage device, a firststack, and a first shared memory; a second server comprising a secondstorage device, a second stack, and a second shared memory, the firstand second server being configured to connect to a network and areassigned to the same network address, wherein the first and the secondstorage devices are configured to store at least one application usedfor service tasks and application data, wherein the first and the secondstacks are configured to store a service request and configured to storeoutput data in a data log in response to the service request, whereinthe service request does not comprise a request to update theapplication data, and wherein the first and the second shared memoriesare configured to form the same address space; a switchover controlconfigured to switch operation modes of the first and the second server;wherein when the service request for updating the application data isreceived over the network, the switchover control switches the operationmode of the first server to service mode and the operation mode of thesecond server to standby mode; wherein the first server is configured topass the service request to the application for processing when theservice request is received, the application being configured to:process the service request, write application data used duringprocessing to the first and the second shared memories as recovery data,and store the recovery data written to the first and second sharedmemories in each of the first and second stacks; wherein the secondserver is configured to update the application data by executing theapplication using the recovery data stored in the first and the secondshared memories; wherein the first and the second servers are configuredto store identical application data.
 4. A duplicated system servercomprising: a first server comprising a first storage device, a firststack, and a first shared memory; a second server comprising a secondstorage device, a second stack, and a second shared memory, the firstand second server being configured to connect to a network and areassigned to the same network address, wherein the first and the secondstorage devices are configured to store at least one application usedfor service tasks and application data, wherein the first and the secondstacks are configured to store a service request and configured to storeoutput data in a data log in response to the service request, andwherein the first and the second shared memories are configured to formthe same address space; a switchover control configured to switchoperation modes of the first and the second server; wherein when theservice request for updating the application data is received over thenetwork, the switchover control switches the operation mode of the firstserver to service mode and the operation mode of the second server tostandby mode; wherein the application is configured to: process thepassed service request, send the output data back to a client over thenetwork, write the output data to the first and the second sharedmemories as recovery data, and store the recovery data written to thefirst and the second shared memories in each of the first and the secondstacks; wherein the second server is configured to execute theapplication using the data log in the first and the second stacks.